Skip to content

Add "Crazy Robotaxi" standalone game demo using new API - #460

Merged
aidanfnv merged 62 commits into
NVIDIA:mainfrom
aidanfnv:dev/aidanf/game/crazy-robotaxi-port
Aug 29, 2026
Merged

Add "Crazy Robotaxi" standalone game demo using new API#460
aidanfnv merged 62 commits into
NVIDIA:mainfrom
aidanfnv:dev/aidanf/game/crazy-robotaxi-port

Conversation

@aidanfnv

@aidanfnv aidanfnv commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

Closes #476 once the game is fully ported to the API
Closes #477 once the game is complete (implies that additional features from #463 are ported)
Closes #463 if it gets subsumed by the ported version

@copy-pr-bot

copy-pr-bot Bot commented Aug 14, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@aidanfnv
aidanfnv force-pushed the dev/aidanf/game/crazy-robotaxi-port branch from 9ab710a to 8a26964 Compare August 14, 2026 03:40
@aidanfnv aidanfnv changed the title Add "Crazy Robotaxi" standalone game demo Add "Crazy Robotaxi" standalone game demo using new API Aug 14, 2026
@aidanfnv aidanfnv self-assigned this Aug 18, 2026
@aidanfnv
aidanfnv force-pushed the dev/aidanf/game/crazy-robotaxi-port branch 5 times, most recently from 1a8e0e8 to 933e5bd Compare August 25, 2026 17:47
@aidanfnv
aidanfnv force-pushed the dev/aidanf/game/crazy-robotaxi-port branch 12 times, most recently from 14fbe5f to 79b7819 Compare August 28, 2026 19:09
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
Signed-off-by: Aidan Foster <aidanf@nvidia.com>
@aidanfnv
aidanfnv force-pushed the dev/aidanf/game/crazy-robotaxi-port branch from 62cfee9 to 7acd8a2 Compare August 29, 2026 00:00
@aidanfnv
aidanfnv marked this pull request as ready for review August 29, 2026 00:05
Comment thread flashdreams/flashdreams/runtime_v2/slangpy_ui_renderer.py Outdated
)

def _trace_presented_frame(self, generation: int) -> None:
if not self._trace_chunk_lifecycle:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a lot of code changes are related to tracing. I think we might need a tracing util or decorator sometime. We can keep this but would need to clean it up later

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, we should clean it up later

Signed-off-by: Aidan Foster <aidanf@nvidia.com>

@ArielG-NV ArielG-NV left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestions

Comment thread flashdreams/flashdreams/api_v2/README.md Outdated
Comment thread flashdreams/flashdreams/runtime_v2/README.md Outdated
aidanfnv and others added 2 commits August 28, 2026 17:38
Co-authored-by: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com>
Signed-off-by: aidanfnv <aidanf@nvidia.com>
Co-authored-by: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com>
Signed-off-by: aidanfnv <aidanf@nvidia.com>
@aidanfnv

Copy link
Copy Markdown
Collaborator Author

/ok to test 6cf6af7

@aidanfnv

Copy link
Copy Markdown
Collaborator Author

@greptile-apps

@greptile-apps

greptile-apps Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds the standalone Crazy Robotaxi game, a reusable OmniDreams game engine, integration adapters, runtime-v2 presentation and input support, authored maps, live-edit abilities, and extensive tests.

  • Registers three OmniDreams-backed Crazy Robotaxi application profiles.
  • Adds taxi and race gameplay, persistence, map compilation, physics, UI, and optional live-edit features.
  • Extends runtime-v2 native-window presentation and session-loop behavior for interactive applications.
  • Updates OmniDreams pipeline, renderer, packaging, workspace dependencies, and documentation.

Confidence Score: 4/5

The PR should not merge until Robotaxi restarts invalidate pending presentation frames so users cannot see output from the abandoned rollout.

Both reachable in-game restart paths reset rollout state without advancing the generation that PresentationManager uses to discard stale frames, allowing pre-restart output to survive into the restarted game.

Files Needing Attention: apps/crazy_robotaxi/crazy_robotaxi/session.py, apps/crazy_robotaxi/crazy_robotaxi/ui.py

Important Files Changed

Filename Overview
apps/crazy_robotaxi/crazy_robotaxi/session.py Implements the game session and restart lifecycle, but local restart paths bypass runtime-generation invalidation and can leave stale frames pending.
apps/crazy_robotaxi/crazy_robotaxi/application.py Composes validated application, rendering, map, pipeline, and session settings for the new runtime-v2 game.
apps/crazy_robotaxi/crazy_robotaxi/ui.py Adds the interactive HUD and menus; its PLAY AGAIN action shares the restart-generation issue.
flashdreams/flashdreams/runtime_v2/presentation_manager.py Adds buffered presentation behavior whose stale-output filtering correctly depends on runtime generations, exposing restarts that do not advance them.
integrations_v2/omnidreams/apps/crazy_robotaxi/adapter.py Connects the Crazy Robotaxi application to the standard and performance OmniDreams pipeline profiles.
apps/crazy_robotaxi/pyproject.toml Defines the standalone package, CLI, dependencies, and package data for maps and obstacle assets.
integrations_v2/omnidreams/pyproject.toml Registers the three documented runtime-v2 application slugs and includes the new game dependency.

Sequence Diagram

sequenceDiagram
    participant U as Player
    participant UI as UI loop
    participant M as Model loop
    participant R as Robotaxi rollout
    participant P as Presentation manager
    U->>UI: Restart input / PLAY AGAIN
    UI->>M: restart_game()
    M->>R: Reset rollout and increment rollout_epoch
    Note over M,P: Runtime generation remains unchanged
    P-->>U: Present buffered pre-restart frames
    M->>P: Publish new rollout frames with same generation
    P-->>U: Present restarted game
Loading

Reviews (1): Last reviewed commit: "Update flashdreams/flashdreams/api_v2/RE..." | Re-trigger Greptile

Comment on lines +327 to +329
if _restart_requested(events):
state.restart_game()
rollout = state.ensure_rollout()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Restart preserves stale frames

When a player presses R or gamepad Start, restart_game() resets the rollout without advancing the runtime generation used by the presentation manager to invalidate pending output, causing frames from the abandoned game to be presented after the restart. The PLAY AGAIN path invokes the same reset behavior.

Knowledge Base Used:

Signed-off-by: Aidan Foster <aidanf@nvidia.com>
@greptile-apps

greptile-apps Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Too many files changed for review (127 files, 100 file limit).

Bypass the limit by tagging @greptile-apps to review.

@aidanfnv

Copy link
Copy Markdown
Collaborator Author

/ok to test 542329c

@aidanfnv
aidanfnv added this pull request to the merge queue Aug 29, 2026
@aidanfnv
aidanfnv removed this pull request from the merge queue due to a manual request Aug 29, 2026
@aidanfnv
aidanfnv added this pull request to the merge queue Aug 29, 2026
Merged via the queue into NVIDIA:main with commit 2302bb1 Aug 29, 2026
6 checks passed
@aidanfnv
aidanfnv deleted the dev/aidanf/game/crazy-robotaxi-port branch August 29, 2026 04:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Game] Create game demo using omnidreams in FlashDreams [Game] Finish porting physx game engine framework and taxi game demo to new API

3 participants